#ifndef  WXORIENTATIONMARK_H
#define WXORIENTATIONMARK_H

#include "WxExtentionExports.h"
#include <itksys/SystemTools.hxx>
#include "vtkActor.h"
#include "vtkAxesActor.h"
#include "vtkAnnotatedCubeActor.h"
#include "vtkOrientationMarkerWidget.h"
#include "vtkPolyDataMapper.h"
#include "vtkPropAssembly.h"
#include "vtkProperty.h"
#include "vtkTextProperty.h"
#include "vtkCaptionActor2D.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkSTLReader.h"

class WxExtention_EXPORT WxOrientationMark
{
public:
    WxOrientationMark(vtkRenderWindowInteractor* iren,const char* modelfilename);
    ~WxOrientationMark(void);
public:
    void SetAxesVisible(bool visible);
    void SetCubeVisible(bool visible);
    void SetModelVisible(bool visible);
private:
    char* m_ModelFileName;

    vtkSTLReader* m_StlReader;
    vtkPolyDataMapper* m_ModelMapper;
    vtkActor* m_Model;

    vtkAnnotatedCubeActor* m_Cube;

    vtkAxesActor* m_Axes;

    vtkPropAssembly* m_Assembly;

    vtkOrientationMarkerWidget* m_Widget;
};

#endif
